The X-window system is a standard for the implementation of network-based window systems such as Unix™ or AIX™ window systems. The X-window system provides users and developers with the functionality for creating and managing a window environment in a network-based computer system.
Typically, an X-window system may comprise a graphics adapter configured to control the rendering of text and images on a display. The graphics adapter may comprise what is commonly referred to as a frame buffer. A frame buffer may be an area of memory used to hold one or more frames of data to be displayed onto the user's display screen. When the data is displayed on the user's display screen, the user may see a two-dimensional image. In some implementations, a user may be able to view the two-dimensional image as a three-dimensional image using a process commonly referred to as “stereo.”
A definition of “stereo” is deemed appropriate. Stereo may refer to stereoscopy which is a particular way a user may view a two-dimensional image on the user's display screen as a three-dimensional image. The two-dimensional image on the user's display screen may comprise two slightly different images with different perspectives that are displayed alternately at a high speed. One image may be for the left eye to view and the other image may be for the right eye to view. When the user wears liquid-crystal shutter eyeglasses which are adapted to block light directed onto each of the right and left eyes alternately in synchronization with the alternate display of the images for the right and left eyes, the viewer may perceive three dimensional image.
The images for the right and left eyes may be temporarily stored in buffers in the frame buffer prior to being displayed on the user's display screen. The frame buffer may be organized in a manner commonly referred to as double buffering. Double buffering may refer to the frame buffer comprising four buffers where the buffers alternate for being used to render or display images. Typically, two buffers are temporarily used for rendering images; whereas, the other two buffers are temporarily used for displaying images. When the images are rendered, the two buffers that were previously used for rendering images alternatively become buffers for displaying images. When that occurs, the two buffers that were used for displaying images alternatively become used for rendering images. One of the two buffers used for rendering/displaying an image may be use for rendering/displaying a right eye image. The other of the two buffers used for rendering/displaying an image may be used for rendering/displaying a left eye image. By having the frame buffer organized with double buffering a problem commonly referred to as tearing may be prevented. Tearing may refer to the problem of an image with missing portions. Organizing the frame buffer with double buffering storing images for the right and left eyes is commonly referred to as “double buffered stereo.”
However, by having the frame buffer organized with double buffering, the frame buffer has less memory space for texture and/or off screen caching. Typically, a frame buffer may allocate a portion of its memory space for storing texture maps. A texture map may refer to the two dimensional image that is mapped onto a surface of a three-dimensional object. Furthermore, a frame buffer may allocate a portion of its memory space for off screen caching. Off screen caching may refer to storing an image that has already been rendered thereby permitting the display of that image at a later time without having to first render that image. By not having to first render the image, the image may be displayed at a faster rate.
If the frame buffer were organized with only two buffers, commonly referred to as single buffering, instead of four buffers for rendering and displaying images for the right and left eyes, the frame buffer may have more memory space to allocate for texture and/or off screen caching. One of the two buffers may be used for rendering/displaying images for the right eye and the other of the two buffers may be used for rendering/displaying images for the left eye. Organizing the frame buffer with single buffering storing images for the right and left eyes is commonly referred to as “single buffered stereo.”
It would therefore be desirable to provide the user of a client with an option to select single buffered stereo instead of double buffered stereo in a windowing system, e.g., X-window system, thereby permitting the extra memory space in the frame buffer to be allocated for texture and/or off screen caching.